package com.irdstudio.efp.esb.api.bean.psd.notice.req;

import com.alibaba.fastjson.annotation.JSONField;
import com.irdstudio.basic.framework.core.annotation.DicType;
import com.irdstudio.efp.console.common.psd.PsdEnumSet;
import com.irdstudio.efp.esb.api.common.GroupeInterface.psd;
import com.irdstudio.efp.esb.common.constant.nls.NlsCertTpEnum;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 需求编号：【2019D1218】（普税贷需求）
 * 问题编号：【2019D1218】（预授信结果通知请求Bean）
 * 开发人员：【ludayong】
 * 创建日期：【2019/11/20 10:11】
 * 功能描述：
 */
public class NlsPsdPreCreditResultNoticeReqBean implements Serializable {

    /** 预授信申请流水号**/
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 64, groups = {psd.class})
    @JSONField(name = "PreCrAppSrlNo")
    private String preCrAppSrlNo;

    /** 审批结果标志**/
    @NotNull(groups = {psd.class})
    @NotEmpty(groups = {psd.class})
    @Length(max = 5, groups = {psd.class})
    @DicType(dicType = PsdEnumSet.AprvlRsltFlgEnum.class, method = "getValue", groups = {psd.class})
    @JSONField(name = "AprvlRsltFlg")
    private String aprvlRsltFlg;

    /** 授信建议额度**/
    @Digits(integer = 21, fraction = 2, groups = {psd.class})
    @JSONField(name = "CrRcmndnAmt")
    private Double crRcmndnAmt;

    /** 建议年利率**/
    @Digits(integer = 12, fraction = 7, groups = {psd.class})
    @JSONField(name = "PrpslAnulIntRt")
    private Double prpslAnulIntRt;

    /** 拒绝原因**/
    @Length(max = 2048, groups = {psd.class})
    @JSONField(name = "RfsRsn")
    private String rfsRsn;

    /** 拒绝码**/
    @Length(max = 1024, groups = {psd.class})
    @JSONField(name = "RfsCd")
    private String rfsCd;

    /** 企业社会信用代码**/
    @Length(max = 32, groups = {psd.class})
    @JSONField(name = "SoclCrdtCd")
    private String soclCrdtCd;

    /** 企业名称**/
    @Length(max = 255, groups = {psd.class})
    @JSONField(name = "EntpNm")
    private String entpNm;

    /** 证件号码**/
    @Length(max = 32, groups = {psd.class})
    @JSONField(name = "CertNo")
    private String certNo;

    /** 手机号码**/
    @Length(max = 11, groups = {psd.class})
    @JSONField(name = "MblNo")
    private String mblNo;

    /** 证件姓名**/
    @Length(max = 64, groups = {psd.class})
    @JSONField(name = "IdentNm")
    private String identNm;

    /** 证件类型**/
    @Length(max = 5, groups = {psd.class})
    @DicType(dicType = NlsCertTpEnum.class, method = "getValue", groups = {psd.class})
    @JSONField(name = "IdentTp")
    private String identTp;

    /** 行业类别**/
    @Length(max = 7, groups = {psd.class})
    @JSONField(name = "IdyCgy")
    private String idyCgy;

    /** 备用字段1 已使用 报存企业类型**/
    @Length(max = 300, groups = {psd.class})
    @JSONField(name = "BckpFld1")
    private String bckpFld1;

    /** 备用字段2 已使用 保存企业注册地码值**/
    @Length(max = 300, groups = {psd.class})
    @JSONField(name = "BckpFld2")
    private String bckpFld2;

    /** 备用字段3**/
    @Length(max = 300, groups = {psd.class})
    @JSONField(name = "BckpFld3")
    private String bckpFld3;

    /** 备用字段4**/
    @Length(max = 300, groups = {psd.class})
    @JSONField(name = "BckpFld4")
    private String bckpFld4;

    /** 备用字段5**/
    @Length(max = 300, groups = {psd.class})
    @JSONField(name = "BckpFld5")
    private String bckpFld5;

    public String getPreCrAppSrlNo() {
        return preCrAppSrlNo;
    }

    public void setPreCrAppSrlNo(String preCrAppSrlNo) {
        this.preCrAppSrlNo = preCrAppSrlNo;
    }

    public String getAprvlRsltFlg() {
        return aprvlRsltFlg;
    }

    public void setAprvlRsltFlg(String aprvlRsltFlg) {
        this.aprvlRsltFlg = aprvlRsltFlg;
    }

    public Double getCrRcmndnAmt() {
        return crRcmndnAmt;
    }

    public void setCrRcmndnAmt(Double crRcmndnAmt) {
        this.crRcmndnAmt = crRcmndnAmt;
    }

    public Double getPrpslAnulIntRt() {
        return prpslAnulIntRt;
    }

    public void setPrpslAnulIntRt(Double prpslAnulIntRt) {
        this.prpslAnulIntRt = prpslAnulIntRt;
    }

    public String getRfsRsn() {
        return rfsRsn;
    }

    public void setRfsRsn(String rfsRsn) {
        this.rfsRsn = rfsRsn;
    }

    public String getRfsCd() {
        return rfsCd;
    }

    public void setRfsCd(String rfsCd) {
        this.rfsCd = rfsCd;
    }

    public String getSoclCrdtCd() {
        return soclCrdtCd;
    }

    public void setSoclCrdtCd(String soclCrdtCd) {
        this.soclCrdtCd = soclCrdtCd;
    }

    public String getEntpNm() {
        return entpNm;
    }

    public void setEntpNm(String entpNm) {
        this.entpNm = entpNm;
    }

    public String getCertNo() {
        return certNo;
    }

    public void setCertNo(String certNo) {
        this.certNo = certNo;
    }

    public String getMblNo() {
        return mblNo;
    }

    public void setMblNo(String mblNo) {
        this.mblNo = mblNo;
    }

    public String getIdentNm() {
        return identNm;
    }

    public void setIdentNm(String identNm) {
        this.identNm = identNm;
    }

    public String getIdentTp() {
        return identTp;
    }

    public void setIdentTp(String identTp) {
        this.identTp = identTp;
    }

    public String getIdyCgy() {
        return idyCgy;
    }

    public void setIdyCgy(String idyCgy) {
        this.idyCgy = idyCgy;
    }

    public String getBckpFld1() {
        return bckpFld1;
    }

    public void setBckpFld1(String bckpFld1) {
        this.bckpFld1 = bckpFld1;
    }

    public String getBckpFld2() {
        return bckpFld2;
    }

    public void setBckpFld2(String bckpFld2) {
        this.bckpFld2 = bckpFld2;
    }

    public String getBckpFld3() {
        return bckpFld3;
    }

    public void setBckpFld3(String bckpFld3) {
        this.bckpFld3 = bckpFld3;
    }

    public String getBckpFld4() {
        return bckpFld4;
    }

    public void setBckpFld4(String bckpFld4) {
        this.bckpFld4 = bckpFld4;
    }

    public String getBckpFld5() {
        return bckpFld5;
    }

    public void setBckpFld5(String bckpFld5) {
        this.bckpFld5 = bckpFld5;
    }
}
